﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WanPiJie
{
	/// <summary>
	/// 
	/// </summary>
	public interface IGrowthRecordService
	{
		/// <summary>
		/// 添加成长记录。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <param name="surveyDate">测量日期。</param>
		/// <param name="weight">身高。</param>
		/// <param name="height">体重。</param>
		/// <param name="headSize">头围。</param>
		/// <param name="chestSize">胸围。</param>
		GrowthRecord AddGrowthRecord(int babyId, DateTime surveyDate, double height, double weight, double headSize, double chestSize);

		/// <summary>
		/// 获取成长记录。
		/// </summary>
		/// <param name="id">记录编号。</param>
		/// <returns></returns>
		GrowthRecord GetGrowthRecord(int id);

		/// <summary>
		/// 获取成长记录。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <returns></returns>
		List<GrowthRecord> GetGrowthRecords(int babyId);

		/// <summary>
		/// 获取第一条成长记录。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <returns></returns>
		GrowthRecord GetFirstGrowthRecord(int babyId);

		/// <summary>
		/// 获取最后一条成长记录。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <returns></returns>
		GrowthRecord GetLastGrowthRecord(int babyId);

		/// <summary>
		/// 获取宝宝出生时的规格。
		/// </summary>
		/// <param name="baby">宝宝对象。</param>
		/// <returns></returns>
		GrowthRecord GetBirthGrowthRecord(Baby baby);

		/// <summary>
		/// 获取当前用户添加的成长记录数
		/// </summary>
		/// <param name="babyId"></param>
		/// <returns></returns>
		Int32 GetGrowthRecordCount(int babyId);

		/// <summary>
		/// 是否存在成长记录。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <returns></returns>
		bool ExistsGrowthRecords(int babyId);

		/// <summary>
		/// 修改成长记录。
		/// 宝宝日期和测量日期作为条件。
		/// </summary>
		/// <param name="babyId">宝宝编号。</param>
		/// <param name="surveyDate">测量日期。</param>
		/// <param name="weight">身高。</param>
		/// <param name="height">体重。</param>
		/// <param name="headSize">头围。</param>
		/// <param name="chestSize">胸围。</param>
		void UpdateGrowthRecord(int babyId, DateTime surveyDate, double height, double weight, double headSize, double chestSize);

	}
}
